Subject: Re: Feature Launcher status ( 2024/09/30 )
From: "Michael H. Siemaszko" <[email-masked]>
To: "Timothy Ward" <[email-masked]>
Date: Mon, 30 Sep 2024 12:56:04 +0000

Hi Tim,

Before our today's meeting, I am sending along list of questions I wanted to ask.

Status is known to you from last week's PR ( https://github.com/kentyou/feature-launcher-prototype/pull/23 ) and its review. This time, due to discrepancy between API assumptions and what came up during implementation, there are several items which need to be decided upon. Along with next items which I need to focus on ( related to Feature Runtime Service ), needed for demo project, I would need to take into consideration what we agree as next steps regarding implementation for items covered in https://github.com/kentyou/feature-launcher-prototype/pull/23. To summarize:

1) RE: Remote repository implementation as per "Maven Artifact Resolver" requirements, passing both local and remote repository to Feature Launcher / Feature Runtime Service and keeping both local and remote artifact repositories in sync;

2) RE: Adding `getArtifactPath(ID)` to `ArtifactRepository` interface and utilizing Java's built-in `URLClassLoader` vs using `getArtifact(ID)` which operates on `InputStream` directly, which requires either custom class loader or writing artifacts to temporary directory, despite the fact that they're already on disk in local repo;

3) RE: API defined for `FeatureExtensionHandler` vs calling `com.kentyou.featurelauncher.impl.FrameworkFactoryLocator.selectFrameworkFactory(FeatureExtension, List<ArtifactRepository>)` from `com.kentyou.featurelauncher.impl.FrameworkFactoryLocator.locateFrameworkFactory(Feature, List<ArtifactRepository>)`, which must receive `FrameworkFactory` not `Feature;

4) RE: Starting Configuration Admin using framework's bundle context';

5) RE: Cleaning storage area during integration tests;

Details of above mentioned are all in comments of recent PR ( https://github.com/kentyou/feature-launcher-prototype/pull/23 ), so I will not repeat the same here.

In addition, as we already discussed and are discussing changes to specification #160, I wanted to pass to you the following, which came up during technical analysis of specifications I needed to cover for this project, i.e.: some minor errors / omissions:

- "OSGi Compendium: Release 8.1 ( Draft, 2024 ): 160. Feature Launcher Service Specification"
https://www.eclipse.org/lists/osgi-dev/pdf4su7jtjIaR.pdf
@ p. 97 ( 160.3.3 Feature Decoration )
AS IS: (...) There are two types of decorator: (...) Feature Extension Handlers - called operations (...)
TO BE?: (...) There are two types of decorator: (...) Feature Extension Handlers - called for operations (...)

@ p. 112 - "The Feature Update Process" - should be marked as 160.5.2.3 and formatted as section header;

@ p. 115 - "160.6.1 osgi.service Capability" - "ArtifactRepositoryFactory" is cut off.. ( "ArtifactRepositoryFac" )

- "OSGi Compendium: Release 8.1 ( Draft, 2024 ): 159. Feature Service Specification"
https://www.eclipse.org/lists/osgi-dev/pdf4su7jtjIaR.pdf
@ p. 71 ( 159.1 Introduction )
AS IS: "Machine Readable - Features are easily be processed by tools."
TO BE?: "Machine Readable - Features can easily be processed by tools."

Regards,

--
Michael H. Siemaszko

Ideas Into Software LLC

Telegram: mhsiemaszko

Email: [email-masked]
WWW: https://ideas.into.software/

GitHub: https://github.com/ideas-into-software/

LinkedIn: https://www.linkedin.com/in/mhsiemaszko/
Twitter: https://twitter.com/IntoSoftware/

On 9/23/24 14:59, Michael H. Siemaszko wrote:

Hi Tim,

Before our today's meeting, I am sending along list of questions I wanted to ask.

Status is known to you from last week's PR, its review, and subsequent fixes applied. As mentioned, I am focusing the next items, to make it on time with the demo project.

Questions I have are the following:

1) Regarding priorities in implementation - I deliberately first chose ( and implemented or am in the process of implementing ) those functionalities which are needed for demo project, as per your outline of what that project is supposed to demonstrate, i.e.:

- Launching framework
* Launching a framework with a "simple" feature, containing bundles and configurations, with no start levels and no framework selection
* Launching a framework with a feature which selects a framework implementation, with no start levels

- Installing features at runtime
* Installing a "simple" feature, with no start levels
* Installing a second feature with overlapping bundles

- Updating features at runtime
* Simple update showing version changes in some of the bundles

- Removing features
* A simple uninstallation case

Please confirm and supplement if necessary, as that's how priorities are set currently.

2) Continuing re: demo project - aside from your outline of what that project is supposed to demonstrate, how is user supposed to interact ? I.e. via GUI ? Via CLI ? If CLI, how is "Add the Command line client" ( https://github.com/kentyou/feature-launcher-prototype/issues/21 ) related to this ?

3) Please clarify regarding "160.4.3.2: #1. If any provider specific configuration has been given to the Feature Launcher implementation then this should be used to identify the framework" - this is not clear to me, the other items in that section are clear enough; relevant class is `com.kentyou.featurelauncher.impl.util.FrameworkFactoryLocator`

4) Custom exceptions instead of re-throwing as RunTimeException - e.g. @ `com.kentyou.featurelauncher.impl.repository.LocalArtifactRepositoryImpl` - API / specification does not define custom exception in case of exception thrown during `com.kentyou.featurelauncher.impl.repository.LocalArtifactRepositoryImpl.getArtifact(ID)` operation; should there such ?

5) Should CI/CD be set up for this project ? If yes, should GitHub actions be used or integrate with some other build server ?

Regards,

--
Michael H. Siemaszko

Ideas Into Software LLC

Telegram: mhsiemaszko

Email: [email-masked]
WWW: https://ideas.into.software/

GitHub: https://github.com/ideas-into-software/

LinkedIn: https://www.linkedin.com/in/mhsiemaszko/
Twitter: https://twitter.com/IntoSoftware/

On 9/18/24 22:20, Timothy Ward wrote:

A call to report status, highlight any blocking issues, and provide feedback on the specification

________________________________________________________________________________

Microsoft Teams Need help?

Join the meeting now

Meeting ID: 368 661 349 750

Passcode: VWT4Yy

For organisers: Meeting options

________________________________________________________________________________